package com.xhwl.logistics.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.xhwl.common.pojo.ResultJson;
import com.xhwl.common.pojo.cent.sdata.Account;
import com.xhwl.common.pojo.cent.vehicle.VehcCar;
import com.xhwl.common.query.cent.vehicle.CarQuery;
import com.xhwl.common.query.cent.vehicle.OrderQuery;
import com.xhwl.common.query.cent.vehicle.TempParkFeeQuery;
import com.xhwl.common.vo.cent.vehicle.ApplyCarCardVO;
import com.xhwl.common.vo.cent.vehicle.CarPayVo;
import com.xhwl.common.vo.cent.vehicle.CarVO;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Lu.Aaron
 * @since 2021-02-08
 */
//@RestController
public interface IVehcCarService extends IService<VehcCar> {
    @RequestMapping(value = "/car-service/add", method = RequestMethod.POST)
    ResultJson add(@RequestPart("carVO") CarVO carVO, @RequestPart("account") Account account,@RequestPart("industryId") Short industryId);

    @RequestMapping(value = "/car-service/update", method = RequestMethod.POST)
    ResultJson edit(@RequestPart("carVO") CarVO carVO, @RequestPart("industryId") Short industryId, Account account);

    @RequestMapping(value = "/car-service/delete", method = RequestMethod.POST)
    ResultJson delete(@RequestParam("id") Integer id, @RequestPart("industryId")Short industryId);

    @RequestMapping(value = "/car-service/page", method = RequestMethod.POST)
    ResultJson carPage(@RequestPart("carQuery")CarQuery carQuery);

    @RequestMapping(value = "/car-service/get-accounts", method = RequestMethod.POST)
    List<Account>  getAccountsByName(@RequestParam("name")String name);

    @RequestMapping(value = "/car-service/get-registered-car", method = RequestMethod.POST)
    ResultJson getRegisteredCar(@RequestPart("carQuery")CarQuery carQuery);

    /**
     * 提供给其他中台，用于预约科拓车位
     */
    @RequestMapping(value = "/car-service/reserveSpace", method = RequestMethod.POST)
    ResultJson<String> reserveSpace(@RequestPart("carVO") CarVO carVO);

    /**
     * 提供给其他中台，用于取消科拓预约车位
     */
    @RequestMapping(value = "/car-service/cancelReservice", method = RequestMethod.POST)
    ResultJson cancelReservice(String orderNo, Integer projectId);

    ResultJson detail(Integer id);

    ResultJson addFromAPP(CarVO carVO, Account account, Short industryId);

    ResultJson cardApply(ApplyCarCardVO applyCarCardVO);

    ResultJson manage(CarQuery carQuery, Account account, Short industryId);

    ResultJson resubmit(CarVO carVO, Account account, Short industryId);

    ResultJson tempParkFeeQuery(TempParkFeeQuery tempParkFeeQuery,  Short industryId);

    ResultJson unifiedOrder(CarPayVo carPayVo, Short industryId, Account account);

    ResultJson orderQuery(OrderQuery orderQuery, Short industryId);

    ResultJson tempParkFeeRecharge(CarPayVo carPayVo,  Short industryId);

    ResultJson storeCarRecharge(CarPayVo carPayVo,  Short industryId);

    ResultJson monthCarRecharge(CarPayVo carPayVo,  Short industryId);

    ResultJson mine(Account account);
}
